/**
 * aui-lazyload.js
 * @author 流浪男
 * Licensed under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 */

"use strict";
//定义了一个变量
var _loadImgNodes;
var auiLazyload = function(params) {
    //错误图片
    this.errorImage = params.errorImage||false;
    //函数执行 初始化错误图片
    this._init(params);
};
//懒加载
auiLazyload.prototype = {
    //初始化函数定义
    _init: function(params) {
        var self = this;
        //获取到当前页面中所有data-src
        _loadImgNodes = document.querySelectorAll('[data-src]');
        // console.log(_loadImgNodes);
        //执行函数
        self._judgeImages();

        /* //不滚动执行时候执行懒加载
         _loadImgNodes = document.querySelectorAll('[data-src]');
         //执行函数
         self._judgeImages();*/

        //滚动滚轮执行事情
        window.addEventListener('scroll', function(){
            //获取到当前页面中所有data-src
            _loadImgNodes = document.querySelectorAll('[data-src]');
            //执行函数
            self._judgeImages();
        }, false);
    },

    _judgeImages:function() {
        var self = this;
        //总共图片的张数
        if(_loadImgNodes.length){
            for(var i = 0;  i < _loadImgNodes.length; i++){
                //图片的位置小于整体窗口文档高度
                if (_loadImgNodes[i].getBoundingClientRect().top < window.innerHeight) {
                    //延迟加载这张图片
                    self._loadImage(_loadImgNodes[i]);
                }
            }
        }
    },
    // 延迟加载图片
    _loadImage:function(el){
        var self = this;
        var img = new Image();
        //获取当前的图片data-src
        img.src = el.getAttribute('data-src');
        //给当前图片的src赋值成data-src地址
        el.src = el.getAttribute('data-src');
        //删除data-src里面的内容保持页面整洁
        el.removeAttribute("data-src");
        // // 图片加载失败
        img.onerror = function() {
            //给当前图片的src赋值成data-src地址  这里是错误图片
            el.src = self.errorImage || el.getAttribute('src');
            //删除data-src里面的内容保持页面整洁
            el.removeAttribute("data-src");
        };
    }
};
window.auiLazyload = auiLazyload;

